mutable route props, constraint match caching