use with_options to decompose except opts in routes