title: How come this cherrypy application does not use `expose`decorators?
body: <p>I had previously learnd that in cherrypy you have to expose a method to make it a view target and this is also spread all over the documentation:</p>
  
  <pre><code>  import cherrypy
    @cherrypy.expose
    def index():
      return "hello world"
  </code></pre>
  
  <p>But I have inherited a cherrypy application which seems to work without exposing anything</p>
  
  <p>How does this work? Was the exposing requirement removed from newer versions?</p>
  
  <p>It is not easy googling for this, I found a lot about exposing and decorators on cherrypy, but nothing about "cherrypy without expose"</p>
  
  <p>This is the main serve.py script, I removed some parts from it for brevity here:</p>
  
  <pre><code># -*- coding: utf-8 -*-
  
  import cherrypy
  from root import RouteRoot
  
  
  dispatcher = cherrypy.dispatch.RoutesDispatcher()
  dispatcher.explicit = False
  dispatcher.connect(u'system',      u'/system', RouteRoot().index)
  
  conf = {
    '/' : {
      u'request.dispatch' : dispatcher,
      u'tools.staticdir.root' : conf_app_BASEDIR_ROOT, 
      u'log.screen' : True,
    },
    u'/my/pub' : {
      u'tools.staticdir.debug' : True,
      u'tools.staticdir.on' : True,
      u'tools.staticdir.dir' : u"pub",
    },
  }
  #conf = {'/' : {'request.dispatch' : dispatcher}}
  
  cherrypy.tree.mount(None, u"/", config=conf)
  import conf.ip_config as ip_config  
  cherrypy.config.update({
    'server.socket_host': str(ip_config.host),
    'server.socket_port': int(ip_config.port),
  })
  
  cherrypy.quickstart(None, config=conf)
  </code></pre>
  
  <p>And there is no èxpose` anywhere in the application. How can it work?</p>
  
  <p>File root.py:</p>
  
  <pre><code># -*- coding: utf-8 -*-
  
  from mako.template import Template
  
  class RouteRoot:
  
    def index(self):
      return "Hello world!"
  </code></pre>