As far as dashes vs. underscore, either one is technically viable. Underscores had some minor compatibility issues more than 10 years ago, but now it pretty much comes down to preference. Seeing how the languages I primarily use (Ruby, PHP and JavaScript, SQL) all typically use underscores for variable names, I've always done the same out of muscle memory. The only real coding benefit that I can think of is that once in a while I've found it helpful to use variable-safe naming for CSS so the name of a table or other object can match the CSS name.

Anyone have any thoughts, preferences or pros/cons?