`
+* Javascript using `router.doRoute('routeid')`
+
+Here is an example of a very simplistic menu that uses URL links:
+
+```html
+
+```
+
+And an example of triggering a route change in code:
+
+```javascript
+router.doRoute('route02')
+```
+
+Or even from a click event on a random HTML element:
+
+```html
+Go to route #1 via click event handler.
+```
+
+## Operational modes
+
+The router can act in one of two ways.
+
+The default mode deletes a route's HTML when a route change occurs and duplicates the route template into the route container.
+
+The hide/show alternate mode, only duplicates the route template once, on first access. Subsequent route changes just set the route container to CSS `display: none` before either duplicating a new template into place or removing (unhiding) the `display: none` if that route had previously been selected.
+
+| Mode | Advantages | Disadvantages |
+| --------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| Clone | Keeps `` code as simple as possible.
The visible clone is reset back to the template on every access. | Any `script` tags are re-executed. So requires code that should not be re-executed (such as code that creates global variables or functions) to be wrapped with a flag che |
+| Hide/Show | `script` tags in routes are only executed once.
Templates can be unloaded after use. | `script`s cannot be run multiple times, define a function can call that instead.
The visible clone cannot be reset back to the default. Once accessed, the template is never used again.
Clutters up `body` code, potentially keeps duplicate code in memory (the template and the visible clone) unless you forcibly unload the template after access. |
+
+Which mode you use will be dependent on what you want to achieve.
+
+## Configuration
+
+TBC - See the example below for configuration settings.
+
+## Defining route templates
+
+Internal route templates are simply valid HTML wrapped in a `` tag. They may contain `
+
+
+ This also comes from an internal <template>
tag
+
+
+
+
+
+ A simple front-end router example
+ Using the uibuilder and uibrouter IIFE libraries.
+
+
+
+
+
+