> Back-end routing is very solid. My experience is that front-end routing is complex and is hard to maintain.
There doesn't seem to be anything inherently more complex about routing on the front end vs the back end. Why does it turn out to be messy when the back end isn't? What's keeping you from using the same patterns?