router.go
func (rs *Routers) Find(path string) (url.Values, HandlerFunc, view.View) {
	defer rs.RUnlock()
	rs.RLock()
	if s, ok := rs.s[path]; ok {
		return nil, s.h, s.v
	}
	for e := rs.l.Front(); e != nil; e = e.Next() {
		s := e.Value.(struct {
			r router.Router
			v view.View
			h HandlerFunc
		})
		if params, ok := s.r.Match(path); ok {
			return params, s.h, s.v
		}
	}
	return nil, nil, nil
}
func (rs *Routers) Find(path string) (url.Values, HandlerFunc, view.View) {
	defer rs.RUnlock()
	rs.RLock()
	if s, ok := rs.s[path]; ok {
		return nil, s.h, s.v
	}
	for e := rs.l.Front(); e != nil; e = e.Next() {
		s := e.Value.(struct {
			r router.Router
			v view.View
			h HandlerFunc
		})
		if params, ok := s.r.Match(path); ok {
			return params, s.h, s.v
		}
	}
	return nil, nil, nil
}
// Find a router with the specific path and return it.