code: func (wfe *WebFrontEndImpl) Handler() http.Handler {
  	m := http.NewServeMux()
  	wfe.HandleFunc(m, directoryPath, wfe.Directory, "GET")
  	wfe.HandleFunc(m, newRegPath, wfe.NewRegistration, "POST")
  	wfe.HandleFunc(m, newAuthzPath, wfe.NewAuthorization, "POST")
  	wfe.HandleFunc(m, newCertPath, wfe.NewCertificate, "POST")
  	wfe.HandleFunc(m, regPath, wfe.Registration, "POST")
  	wfe.HandleFunc(m, authzPath, wfe.Authorization, "GET", "POST")
  	wfe.HandleFunc(m, challengePath, wfe.Challenge, "GET", "POST")
  	wfe.HandleFunc(m, certPath, wfe.Certificate, "GET")
  	wfe.HandleFunc(m, revokeCertPath, wfe.RevokeCertificate, "POST")
  	wfe.HandleFunc(m, termsPath, wfe.Terms, "GET")
  	wfe.HandleFunc(m, issuerPath, wfe.Issuer, "GET")
  	wfe.HandleFunc(m, buildIDPath, wfe.BuildID, "GET")
  	wfe.HandleFunc(m, rolloverPath, wfe.KeyRollover, "POST")
  
  	// We don't use our special HandleFunc for "/" because it matches everything,
  	// meaning we can wind up returning 405 when we mean to return 404. See
  	// https://github.com/letsencrypt/boulder/issues/717
  	m.Handle("/", web.NewTopHandler(wfe.log, web.WFEHandlerFunc(wfe.Index)))
  	return measured_http.New(m, wfe.clk, wfe.stats)
  }
docs: // Handler returns an http.Handler that uses various functions for
  // various ACME-specified paths.