Handle keys with dash. ref #10
diff --git a/lexer.go b/lexer.go
index 09598ec..b70ff74 100644
--- a/lexer.go
+++ b/lexer.go
@@ -67,6 +67,10 @@
 	return unicode.IsLetter(r) || r == '_'
 }
 
+func isKeyChar(r rune) bool {
+	return isAlphanumeric(r) || r == '-'
+}
+
 func isDigit(r rune) bool {
 	return unicode.IsNumber(r)
 }
@@ -276,7 +280,7 @@
 
 func lexKey(l *lexer) stateFn {
 	l.ignore()
-	for isAlphanumeric(l.next()) {
+	for isKeyChar(l.next()) {
 	}
 	l.backup()
 	l.emit(tokenKey)
diff --git a/lexer_test.go b/lexer_test.go
index f7ff7e1..9a98689 100644
--- a/lexer_test.go
+++ b/lexer_test.go
@@ -84,6 +84,13 @@
 	})
 }
 
+func TestBasicKeyWithDash(t *testing.T) {
+	testFlow(t, "hello-world", []token{
+		token{tokenKey, "hello-world"},
+		token{tokenEOF, ""},
+	})
+}
+
 func TestBasicKeyWithUppercaseMix(t *testing.T) {
 	testFlow(t, "helloHELLOHello", []token{
 		token{tokenKey, "helloHELLOHello"},