Hi Mark,
I did some hacking with Switchee plugin:
1) I added “excise” parameter.
“excise” parameter accepts two values - “max” (default) and “min”. It allows you to specify if
tagdata which surrounds matched case should be outputted (min) or not (max). E.g. in case
{variable_to_test} has as its value the value1 the code
{exp:switchee variable = "{variable_to_test}" excise="max" parse="inward"}
blah blah blah
{case value="value1"}
AAAAAAAAA
{/case}
blah blah blah
{case value="value2"}
BBBBBBBB
{/case}
blah blah blah
{/exp:switchee}
will output
AAAAAAAAA
But the code
{exp:switchee variable = "{variable_to_test}" excise="min" parse="inward"}
blah blah blah
{case value="value1"}
AAAAAAAAA
{/case}
blah blah blah
{case value="value2"}
BBBBBBBB
{/case}
blah blah blah
{/exp:switchee}
in case {variable_to_test} has as its value the value1 will output
blah blah blah
AAAAAAAAA
blah blah blah
blah blah blah
2) It is not possible to nest plugin tags. In order to circumvent tthis limitation I created the clone of Switchee plugin - Switchee2. Using Switchee and Switchee2 it is possible to write the code as this:
{exp:switchee variable = "{variable_to_test}" parse="inward"}
blah blah blah
{case value="value1"}
blah blah blah
{exp:switchee2 variable = "{variable_to_test}" parse="inward"}
{case2 value="value3"}
AAAAAAAAA
{/case2}
{case2 value="value4"}
CCCCCCCCCCCC
{/case2}
{/exp:switchee2}
blah blah blah
{/case}
blah blah blah
{case value="value2"}
BBBBBBBB
{/case}
blah blah blah
{/exp:switchee}
If you like my additions, feel free to incorporate them into official version.