dumpUserRoutes(print = true) {
        const routes = { app: [], uibRouter: [], vendorRouter: [], }

        // Get the client-facing routes
        for ( const layer of this.app._router.stack) { this.summariseRoute(layer, routes.app) }
        if (this.uibRouter) for ( const layer of this.uibRouter.stack) { this.summariseRoute(layer, routes.uibRouter) }
        if (this.vendorRouter) for ( const layer of this.vendorRouter.stack) { this.summariseRoute(layer, routes.vendorRouter) }

        if (print) {
            console.log(' \n---- Client Facing Routes ----')

            console.log(`>> Client App Routes ${this.uib.nodeRoot}/* >>`)
            console.table(routes.app)

            console.log(`>> Client uib Routes ${this.uib.nodeRoot}/${this.uib.moduleName}/* >>`)
            console.table(routes.uibRouter)

            console.log(`>> Client vendor Routes ${this.uib.nodeRoot}/${this.uib.moduleName}/vendor/* >>`)
            console.table(routes.vendorRouter)
        }

        return routes
    }
Return a summary of all the user-facing uibuilder specific ExpressJS routes & output to console if required
@param {boolean} print If true, output to console
@returns {any} Summary object