`Route.reverse` is not meant to be called directly. It is called through iteration in `Router.reverse`. `Router.reverse` attempts every route in sequence that matches the criteria. If one fails, it tries the next one, etc. until one matches. It was either this or wrap the attempt in a `try ... catch` and I'd rather do this.