A better regex: `/^([a-z][.-]?)*[a-z]$/`

- Not limited to 50 chars (we decided against that ages ago)
- Shorter and (hopefully) easier to read
- Handles dots as well as dashes