Allow module names to contain dashes

It's not recommended that module names contain dashes, yet some of them
do.  This changes the module name parsing to allow alpha-numeric
characters plus underscores and dashes.

Additionally, this logs the name of the invalid entry when an invalid
module name is found.
This should include a test for hyphenated module names.