If you attempt to create a module with a front name like hello-world
in Magento 2, you'll get an error that looks like this.
Invalid XML in file /Users/alanstorm/Sites/magento-2-with-keys/magento2/app/code/Pulsestorm/HelloPestle/etc/frontend/routes.xml:
Element 'route', attribute 'id': [facet 'pattern'] The value
'hello-world' is not accepted by the pattern '[A-Za-z0-9_]{3,}'.
It seems like Magento doesn't want URL front names that have anything other than a number, letter, or underscore in them. It also forces front names to have three or more characters.
The number, letter, and underscore limitation make sense since a route ID is used to create a layout handle and "special" characters there may cause a problem. However, the three character limit is confusing.
Does anyone know the reason for this?