deepmerge and circular references
The usage of deepmerge on render() locals onto app.locals would suggest that passing deep structures to views as locals isn't shunned upon, but some very simple scenarios (like passing in an object holding any circular reference at all (a controller or something?) will result in a `RangeError`. (max call stack size exceeded).

koa-session, as used in the example in the docs, has a `_ctx` property containing the koa context object. It seems like it'll be inevitable at some point to have circular references on / to the koa object. Passing this koa context into my view via `session: this.session` is doing just that as I have added some application-specific properties.

Would the circular reference be considered an anti-pattern or could a shallow merge be more appropriate / less costly?
