Updated demo project with a custom route constraint