Intersection method of Ellipse

Even though the intersection is a method of the Ellipse it doesn't seem to work as expected.
e = Ellipse(Point(-1, 0), 4, 3)
e.intersection(Circle(Point(-1, 1), 4)) this will give the following error:
In order to solve this equation, try replacing your symbols with Dummy symbols (or other symbols without assumptions). But if applied to the circle object it works fine.
a = Circle(point(-1, 1, 4)
a.intersection(Ellipse(Point(-1, 0),4, 3)
[Point(−1,−3),Point(−1,−3),Point(−1+16∗sqrt(3)/7,3/7),Point(−16∗sqrt(3)/7−1,3/7)]
So I have made some changes to the intersection method of the ellipse which includes the deletion of    _do_circle_intersection method.I have included its functionality in  _do_ellipse_intersection.
_do_circle_intersection does the same job as _do_ellipse_intersection except for this:

if self.center == o.center:

-            a, b, r = o.major, o.minor, self.radius

-            x = a*sqrt(simplify((r**2 - b**2)/(a**2 - b**2)))

-            y = b*sqrt(simplify((a**2 - r**2)/(a**2 - b**2)))

-            return list(set([Point(x, y), Point(x, -y), Point(-x, y),

-                             Point(-x, -y)]))
But the above assumption will fail if even though both the centers coincide but are not at the origin.So I have removed this method and appended the functionality to _do_ellipse_intersection.