user100290: For example, could you have the following transaction:
A --> B 
A --> C
Where A is an input txid and index, and B and C are outputs? The reason I'm asking is because I believe with SIGHASH_SINGLE you can only sign one input and one output, so this would be a way to use the same input to spend to two outputs. It would be the equivalent of sighash 'double', if it existed. 
For example, to have a transaction like this:
A --> B
A --> C
D --> E
Where the D --> E input and output could be added after the first two inputs had been signed. Is there any other way to achieve this?

user7272: No, this is not possible - once an outpoint is consumed by a transaction, it is considered spent, including within the same transaction.
Your only option here would be to have an intermediary transaction splitting A (or using another input), and then using the two outputs from that as inputs along with SIGHASH_SINGLE | SIGHASH_ANYONECANPAY for your flags.
A -> A1
 \-> A2

A1 -> B
A2 -> C
D  -> E

Note that SIGHASH_SINGLE signs a single output and all of the inputs. If you want someone else to be able to add inputs, you need the ANYONECANPAY flag as well

100290: <p>For example, could you have the following transaction:</p>

<p>A --> B <br>
A --> C</p>

<p>Where A is an input txid and index, and B and C are outputs? The reason I'm asking is because I believe with SIGHASH_SINGLE you can only sign one input and one output, so this would be a way to use the same input to spend to two outputs. It would be the equivalent of sighash 'double', if it existed. </p>

<p>For example, to have a transaction like this:</p>

<p>A --> B<br>
A --> C<br>
D --> E</p>

<p>Where the D --> E input and output could be added after the first two inputs had been signed. Is there any other way to achieve this?</p>
 7272: <p>No, this is not possible - once an outpoint is consumed by a transaction, it is considered spent, including within the same transaction.</p>

<p>Your only option here would be to have an intermediary transaction splitting A (or using another input), and then using the two outputs from that as inputs along with <code>SIGHASH_SINGLE | SIGHASH_ANYONECANPAY</code> for your flags.</p>

<pre><code>A -&gt; A1
 \-&gt; A2

A1 -&gt; B
A2 -&gt; C
D  -&gt; E
</code></pre>

<p>Note that SIGHASH_SINGLE signs a single <em>output</em> and all of the inputs. If you want someone else to be able to add inputs, you need the <code>ANYONECANPAY</code> flag as well</p>
