I think the way to go is to put isolve into inequalities.py and make sure it return inequalites, not ranges then in `_solve_inequality` make it look like this:

```
    ...
    try:
        p = Poly(expr, s)
        if p.degree() != 1:
            raise NotImplementedError
    except (PolynomialError, NotImplementedError):
        return isolve(expr, s)
    ...
```