Fix circular imports with available_backends()
diff --git a/cryptography/hazmat/backends/__init__.py b/cryptography/hazmat/backends/__init__.py
index 59d1bc6..ffb0339 100644
--- a/cryptography/hazmat/backends/__init__.py
+++ b/cryptography/hazmat/backends/__init__.py
@@ -13,23 +13,42 @@
 
 from __future__ import absolute_import, division, print_function
 
-from cryptography.hazmat.backends import openssl
 from cryptography.hazmat.backends.multibackend import MultiBackend
 from cryptography.hazmat.bindings.commoncrypto.binding import (
     Binding as CommonCryptoBinding
 )
-
-_ALL_BACKENDS = []
-
-if CommonCryptoBinding.is_available():
-    from cryptography.hazmat.backends import commoncrypto
-    _ALL_BACKENDS.append(commoncrypto.backend)
-
-_ALL_BACKENDS.append(openssl.backend)
+from cryptography.hazmat.bindings.openssl.binding import (
+    Binding as OpenSSLBinding
+)
 
 
-_default_backend = MultiBackend(_ALL_BACKENDS)
+_available_backends = None
+
+
+def available_backends():
+    global _available_backends
+
+    if _available_backends is None:
+        _available_backends = []
+
+        if CommonCryptoBinding.is_available():
+            from cryptography.hazmat.backends import commoncrypto
+            _available_backends.append(commoncrypto.backend)
+
+        if OpenSSLBinding.is_available():
+            from cryptography.hazmat.backends import openssl
+            _available_backends.append(openssl.backend)
+
+    return _available_backends
+
+
+_default_backend = None
 
 
 def default_backend():
+    global _default_backend
+
+    if _default_backend is None:
+        _default_backend = MultiBackend(available_backends())
+
     return _default_backend
diff --git a/tests/conftest.py b/tests/conftest.py
index 0069f2c..c597820 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -15,7 +15,7 @@
 
 import pytest
 
-from cryptography.hazmat.backends import _ALL_BACKENDS
+from cryptography.hazmat.backends import available_backends
 from cryptography.hazmat.backends.interfaces import (
     HMACBackend, CipherBackend, HashBackend, PBKDF2HMACBackend, RSABackend
 )
@@ -25,7 +25,7 @@
 
 def pytest_generate_tests(metafunc):
     names = metafunc.config.getoption("--backend")
-    selected_backends = select_backends(names, _ALL_BACKENDS)
+    selected_backends = select_backends(names, available_backends())
 
     if "backend" in metafunc.fixturenames:
         metafunc.parametrize("backend", selected_backends)