Cool stuff Cliff.
I did run into a question however. I'm finding the need to disconnect individual 'pipes' from a TeeSplit or TeeMerge - not simply 'all' pipes.
For example, my 'shell app' has an outbound (TeeSplit) and inbound (TeeMerge) pipe. Dynamically loaded modules create pipes and connect to the latter 'shell' pipes.
When it comes time to unload a dynamically loaded module, I currently don't have a way to remove to the connection to the app's TeeSplit / TeeMerge without disconnecting all of the other modules' pipes as well.
I simply subclassed TeeSplit and added function to disconnect the passed fitting.
public function disconnectFitting(output:IPipeFitting):IPipeFitting
Doing so solved my problem.
*If* I'm not missing something, it might be worthwhile to add the latter function to TeeSplit.