Есть такая команда
\let. Она нужна обычно, если есть какая-то команда, скажем
\shakeandbake и мы хотим ее переопределить через саму себя. Ни
\renewcommand{\shakeandbake}{.......\shakeandbake...}
ни аналогично с
\def работать не будут, и другие подобные конструкции тоже, потому что они все время будут стремиться "расширить" (реинтерпретировать)
\shakeandbake, и будет получаться порочный круг.
Но вот
\let\shakeandbakeold=\shakeandbake
\renewcommand{\shakeandbake}{.......\shakeandbakeold...}
сработает, так как в ней
\shakeandbake не "расширяется".