tree: Add invalid node type test

Raises the test coverage to 100%
diff --git a/tree.go b/tree.go
index 933b5cb..121d0c3 100644
--- a/tree.go
+++ b/tree.go
@@ -379,7 +379,7 @@
 					return
 
 				default:
-					panic("Unknown node type")
+					panic("Invalid node type")
 				}
 			}
 		} else if path == n.path {
@@ -490,7 +490,7 @@
 					return append(ciPath, path...), true
 
 				default:
-					panic("Unknown node type")
+					panic("Invalid node type")
 				}
 			}
 		} else {
diff --git a/tree_test.go b/tree_test.go
index cf4d170..ed1f9a8 100644
--- a/tree_test.go
+++ b/tree_test.go
@@ -557,3 +557,28 @@
 		}
 	}
 }
+
+func TestTreeInvalidNodeType(t *testing.T) {
+	tree := &node{}
+	tree.addRoute("/", fakeHandler("/"))
+	tree.addRoute("/:page", fakeHandler("/:page"))
+
+	// set invalid node type
+	tree.children[0].nType = 42
+
+	// normal lookup
+	recv := catchPanic(func() {
+		tree.getValue("/test")
+	})
+	if rs, ok := recv.(string); !ok || rs != "Invalid node type" {
+		t.Fatalf(`Expected panic "Invalid node type", got "%v"`, recv)
+	}
+
+	// case-insensitive lookup
+	recv = catchPanic(func() {
+		tree.findCaseInsensitivePath("/test", true)
+	})
+	if rs, ok := recv.(string); !ok || rs != "Invalid node type" {
+		t.Fatalf(`Expected panic "Invalid node type", got "%v"`, recv)
+	}
+}