Via LtU, I ran across this Wiki page that gives a blow by blow explanation on how you can implement a switch statement in Smalltalk, such that you can write this:
aValue switch
case: [matchCode1] then: [actionCode1];
case: [matchCode2] then: [actionCode2];
...
default: [otherCode].
Which is a pretty natural looking case statement - even down to the semi-colons :) The implementation demonstrates the ability to add your own control structures to Smalltalk - making it straightforward to create your own domain specific language, as it were. Heck, Steve Kelly's outfit does exactly that!