code: func NewMux(sharedFuncs ...map[string]interface{}) *Mux {
  	var funcs map[string]interface{}
  	if len(sharedFuncs) > 0 {
  		funcs = sharedFuncs[0]
  	} else {
  		funcs = make(map[string]interface{}, 0)
  	}
  
  	m := &Mux{
  		Entries:     Entries{},
  		SharedFuncs: funcs,
  		Reload:      false,
  		buffer:      &bytebufferpool.Pool{},
  	}
  	return m
  }
docs: // NewMux returns a new Mux
  // Mux is an optional feature, used when you want to use multiple template engines
  // It stores the loaders with each of the template engine,
  // the identifier of each template engine is the (loader's) Extension
  // the registry finds the correct template engine and executes the template
  // so you can use and render a template file by it's file extension