Added implicit MatcherBranch<A, B> -> Unsure<B>
Renamed MatcherBranch to Matcher; added IsComplete

So Matcher objects can be passed around