What happens if you have two models with two through models like the following? I suspect an endless recursion. But haven't tried it.

```python
class A(models.Model):
    b_s = models.ManyToManyField('B', through='AB')

class B(models.Model):
    a_s = models.ManyToManyField('A', through='BA')

class AB(models.Model):
    a = models.ForeignKey(A)
    b = models.ForeignKey(B)

class BA(models.Model):
    b = models.ForeignKey(B)
    a = models.ForeignKey(A)
```