 
        Configuration Routing struct mapper
Create a route that matches a URL requiring an HTTP PATCH method. We recommend using this matcher to expose actions that update database records.
| Name | Type | Required | Default | Description | 
|---|---|---|---|---|
| name | string | No | Camel-case name of route to reference when build links and form actions (e.g., blogPost). | |
| pattern | string | No | Overrides the URL pattern that will match the route. The default value is a dasherized version of name(e.g., anameofblogPostgenerates a pattern ofblog-post). | |
| to | string | No | Set controller##actioncombination to map the route to. You may use either this argument or a combination ofcontrollerandaction. | |
| controller | string | No | Map the route to a given controller. This must be passed along with the actionargument. | |
| action | string | No | Map the route to a given action within the controller. This must be passed along with thecontrollerargument. | |
| package | string | No | Indicates a subfolder that the controller will be referenced from (but not added to the URL pattern). For example, if you set this to admin, the controller will be located atadmin/YourController.cfc, but the URL path will not containadmin/. | |
| on | string | No | If this route is within a nested resource, you can set this argument to memberorcollection. Amemberroute contains a reference to the resource'skey, while acollectionroute does not. | |
| redirect | string | No | Redirect via 302 to this URL when this route is matched. Has precedence over controller/action. Use either an absolute link like /about/, or a full canonical link. | 
<cfscript>
mapper()
    // Route name:  ghostStory
    // Example URL: /ghosts/666/stories/616
    // Controller:  Stories
    // Action:      update
    .patch(name="ghostStory", pattern="ghosts/[ghostKey]/stories/[key]", to="stories##update")
    // Route name:  goblins
    // Example URL: /goblins
    // Controller:  Goblins
    // Action:      update
    .patch(name="goblins", controller="goblins", action="update")
    // Route name:  heartbeat
    // Example URL: /heartbeat
    // Controller:  Sessions
    // Action:      update
    .patch(name="heartbeat", to="sessions##update")
    // Route name:  usersPreferences
    // Example URL: /preferences
    // Controller:  users.Preferences
    // Action:      update
    .patch(name="preferences", to="preferences##update", package="users")
    // Route name:  orderShipment
    // Example URL: /shipments/5432
    // Controller:  orders.Shipments
    // Action:      update
    .patch(
        name="shipment",
        pattern="shipments/[key]",
        to="shipments##update",
        package="orders"
    )
    // Example scoping within a nested resource
    .resources(name="subscribers", nested=true)
        // Route name:  launchSubscribers
        // Example URL: /subscribers/3209/launch
        // Controller:  Subscribers
        // Action:      launch
        .patch(name="launch", to="subscribers##update", on="collection")
        // Route name:  discontinueSubscriber
        // Example URL: /subscribers/2251/discontinue
        // Controller:  Subscribers
        // Action:      discontinue
        .patch(name="discontinue", to="subscribers##discontinue", on="member")
    .end()
.end();
</cfscript>