Group names can contain underscores
Added a couple of tests for empty conditional branches
Reduce/merge conditional tokens in the lexer