This behaviour seems a bit surprising: if a custom verifier is used, neither the fingerprint nor the hostname will be checked.

Possibly this would be a more sensible implementation?

```
verifiers = [
    Accept(),
    self.verifier,
    self.assert_fingerprint and Fingerprint(self.assert_fingerprint),
    self.assert_hostname and Hostname(self.assert_hostname or self.host),
]
verifier = And(*[v for v in verifiers if v])
```