Add {assert,refute}_match

Since I used it in the examples, I figured I must have it as an assertion
Represent skips as failures

Also, replace all `pop`'s with `first` to be less destructive
Keep track if a run passed or not