router refactor :heart:

The behaviour should be exactly the same, save that all controller actions
now support multiple HTTP verbs.