Wouldn't it simplify matters to set `limit` to Infinity when calling `traverseParents` from `parents`?

```coffeescript
parents = traverseParents(this, elem, selector, Infinity);
```

That way there'd be no need for branching logic in `traverseParents`.