You can change your routes to look like this:
addRoute(name="pinShow", pattern="pin/show/[key]", controller="pin", action="show");
addRoute(name="pinShow", pattern="pin/show", controller="pin", action="show");
addRoute(name="pin", pattern="pin/[invalid]", controller="pin", action="invalidAction");
addRoute(name="pin", pattern="pin", controller="pin", action="index");
In this case, you may need to make the invalidAction
method public
for this to work.