First choose between A or B.
If B - then choose between C or D.
C and D is available only for B case.
This can be replaced by A or C or D. Making it a little bit shorter but hides initial logic when making decision to break simple B into C or D. Personally I have a b-tree mind.
But sure, I can easily refactor it.