Rewrite router so that routes bind callbacks, not the router. Better error handling and event execution.