Edit Completed the extended of stacks from the router
Edit Allowed the base Middleware class to allow extending of itself. Not sure how this is going to work regarding memory/garbage collection!
Edit Added the extending of stacks with another stack. This actually creates a whole new stack rather than having to go through one stack and then go through another. In this case it works because we knew the ordering will be preserved