Not related to @rynowak's comment but why doesn't this method return an `IRouteConstraint` and throw if it finds anything else? This will all barf anyway when it gets called with an `InvalidCastException`. We might as well preempt that and throw a more useful error message.