allow hyphens in identifier and command names, avoid long regexps with all the keywords, use the new test_match infrastructure in slexer