The `'metro'` router is a modification of the `'manhattan'` router that produces an octolinear route (i.e. a route consisting of orthogonal and diagonal line segments, akin to the London Underground map design). It also avoids obstacles, and accepts the same `router.args` as `'manhattan'`, with a few modifications:

maximumLoops | number | Does not use the `'orthogonal'` router as fallback if path cannot to be found in the given number of iterations. Instead, a custom octolinear fallback route is used that does not avoid obstacles.
maxAllowedDirectionChange | number | Default changes to `45`.
startDirection | Array<string> | Same as `'manhattan'` (i.e. only the four orthogonal directions are accepted as start directions).
endDirection | Array<string> | Same as `'manhattan'` (i.e. only the four orthogonal directions are accepted as end directions).

Example:

    link.router('metro', {
        excludeEnds: ['source'],
        excludeTypes: ['myNamespace.MyCommentElement'],
        startDirections: ['top'],
        endDirections: ['bottom']
    });