Allow routes to be completely customized

This is a backport of some changes from the 2.0 branch.
would it make sense to also include tests for when routes are enabled? Seems like there are tests for signup disabled and all disabled in this file, but not for the base case of all enabled