This is basically the same as rails does with engines, unshifting the load order of config/routes.rb files to the routes reloader. This way we end up with the common/base filters being run first and custom/app-level filters being run second. The reasoning behind this is that common filters (such as locale, section paths filters etc.) should not need to know about what custom, higher level filters do and thus need to run first. Custom filters on the other hand can easily take into account that common filters already have been run.