Could you not use a Bridge/Factless Fact table to accomplish this rather than a straightforward snowflake type join?
Then with a Many to Many relationship through the Bridge/factless fact you should be able to accomlish all your reporting needs.
_________________________________________________________________________
SSC Guide to Posting and Best Practices