Join to the same model with different depth
You need to use an alias for the 2nd reference:

```python
Status2 = Status.alias()
query = Shot.select()
query = query.join(Status)...
query = query.switch(Shot).join(Project).join(Status2)
``` Docs: http://docs.peewee-orm.com/en/latest/peewee/querying.html#using-model-aliases
I have models like this:

```
class Status(ModelBase):
    name = CharField()

class Project(ModelBase):
    name = CharField()
    status = ForeignKeyField(Status)

class Shot(ModelBase):
    name = CharField()
    project = ForeignKeyField(Project)
    status = ForeignKeyField(Status)
```

If I want to join Status using following query, there will be an error
```
query = Shot.select()
query = query.join(Status).where(....)
query = query.switch(Shot).join(Project).join(Status).where(....)

for q in query:
    print q.id
```

`peewee.ProgrammingError: table name "t2" specified more than once`

Does that means peewee doesn't support this kind of multiple join or is there another way to do that?
