make patterns public so they can be used with router param