Handles badmatch test failure case
Refactor runner to DRY up commonalities between run and test
Makes test use built-in eunit:test, which probably should have happened in the first place