You could also make use of temporary variables.
$ a=`pwd`
$ cd /mnt/rockin/it
$ b=`pwd`
$ cd $a $ a=`pwd`
$ cd /mnt/rockin/it
$ b=`pwd`
$ cd $aEDIT: I currently use cdargs, and it had to get built into muscle memory before it was really powerful. Now, I type "cv twTABENTER" and I'm where I want to be, before I've finished thinking about where I want to be.
I wish it were interactive, like iswitchb ... or I guess I could just start using shell-mode inside Emacs.