router.go
func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) {
	//now := time.Now()
	if root, exist := r.roots[req.Method]; exist {
		handler, params, _ := root.match(req.URL.Path)
		if handler != nil {
			handler.ServeHTTP(w, req, params)
			//log.Println(time.Now().Sub(now))
			return
		}
	}
	r.handleMissing(w, req)
}
func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) {
	//now := time.Now()
	if root, exist := r.roots[req.Method]; exist {
		handler, params, _ := root.match(req.URL.Path)
		if handler != nil {
			handler.ServeHTTP(w, req, params)
			//log.Println(time.Now().Sub(now))
			return
		}
	}
	r.handleMissing(w, req)
}
// http Handler Interface