'Mount an application to a specific URL prefix. The prefix is added
to SCRIPT_PATH and removed from PATH_INFO before the sub-application
is called.:param app: an instance of :class:`Bottle`.:param prefix:
path prefix used as a mount-point.
All other parameters are passed to the underlying :meth:`route` call.'

def mount(self, app, prefix, **options):

    if (not isinstance(app, Bottle)):
        raise TypeError('Only    Bottle    instances    are    supported    for    now.')
    prefix = '/'.join(filter(None, prefix.split('/')))
    if (not prefix):
        raise TypeError('Empty    prefix.    Perhaps    you    want    a    merge()?')
    for other in self.mounts:
        if other.startswith(prefix):
            raise TypeError(('Conflict    with    existing    mount:    %s' % other))
    path_depth = (prefix.count('/') + 1)
    options.setdefault('method', 'ANY')
    options.setdefault('skip', True)
    self.mounts[prefix] = app
    @self.route(('/%s/:#.*#' % prefix), **options)
    def mountpoint():
        request.path_shift(path_depth)
        return app._handle(request.environ)
