See the discussion of the MacroCommand class on pages 234 and 235 of DesignPatterns.
I HaveThisPattern. I have used it in a simple undo/redo framework for Gtk+ to allow a single user interface action to perform multiple commands that could be undone/redone as one.
Emacs does the same thing.
--NatPryce