Pass the original value by reference

So you don't have to get the array, modify it, and put it back in
Add priority constraints to the events

This way multiple handlers can be registered for an event, and they will be sorted on their priority.
An exception will be thrown if the priority already exists
Added a getRoutes() method on the router
Set the priority at 25 for framework events
Give the option to modify the response content