Support more than one match case by adding predicate to define-view.

I suppose this branch would mess up your blog post, but I added a predicate to define-view so that a failed match can flow down to the next arm of the match, rather than trying to use the bum accessors.