Implement *Match methods for directory providers

Changed the template to look for `provider => [files|directory|location]match` instead of looking for a `~`