I refactored the MortgageApp to use the pipes utility. I like the approach the Pipes utility takes - build the module-app app-module integration on top of the exisiting modules (i.e. add a junction mediator to your exisiting module and ensure your module implements IPipeAware).
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.