I did that in the definition of `byte` -- so in our unit system `dbyte` cannot exist. But in FITS in principle it can, and that is the case I'm trying to capture here.  

Maybe it is good to step back, and consider what is the actual problem: if I remove these `special_cases`, I get an error any time I do `<unit>.to_string('fits')`:
```
In [2]: u.a.to_string('fits')
ERROR: AttributeError: 'module' object has no attribute 'dbyte' [astropy.units.format.fits]
```
The difference with other excluded prefixes seems to be that one usually excludes them since the other unit exists.  Hence, when, e.g., the code tries to get `'P'+'a'`, it will just overwrite `names['Pa']=u.Pa`, which is fine. But in my case, it will work for `dB` but not for `dbyte` since that particular unit does not exist. So, really I want to exclude the prefix `d` only for `B`, not also for `byte`.

Which perhaps suggests a solution: if I define `B` as a derived unit from `byte`, I can exclude the prefix `d` only where it matters.  This works except that it breaks another test:
```

    def test_megabit():
        """See #1543"""
        assert u.Mbit is u.Mb
        assert u.megabit is u.Mb
    
>       assert u.Mbyte is u.MB
E       assert Unit("Mbyte") is Unit("MB")
E        +  where Unit("Mbyte") = u.Mbyte
E        +  and   Unit("MB") = u.MB

/data/mhvk/venv/astropy-dev/lib/python3.3/site-packages/astropy-0.4.dev6748-py3.3-linux-x86_64.egg/astropy/units/tests/test_units.py:516: AssertionError
```