Leave a blank line after the `----` except for `See Also`, I believe. Wrap the lines to less than 80 chars. Perhaps rewrite as "Until the general ellipse (with no axis parallel to the x-axis) is supported, an expression is returned."  But I am still not convinced that this is the right thing to do. I could see raising a NotImplementedError and offering this equation as part of the error message. Anyone wanting to use it could then capture the message if they desired:

```
>>> try:
...   raise AssertionError('wow')
... except AssertionError, msg:
...   print msg
...
wow
```

Also, what if the variables `x` and `y` are already used in the definition of the Ellipse: you need to make sure that the variable you use is not already used. The way to do that is to use a Dummy() symbol...but if you name it Dummy('x') you will have to make sure that if you return the expression as a string that there is no symbol that has the name '_x' in it. e.g.

```
>>> def _uniquely_named_symbol(xname, expr):
...     prefix = '%s'
...     x = prefix % xname
...     while any(x == str(s) for s in expr.free_symbols):
...         prefix = '_' + prefix
...         x = prefix % xname
...     return _symbol(x)
...
>>> _uniquely_named_symbol('x',Dummy('x')) + Dummy('x')
_x + x
```