M-! でシェルコマンドが実行できますが、この際のミニバッファでの入力の TAB 補完を独自定義できますか?

具体的には、 rake コマンドの補完が zsh ではできているが、emacs のコマンド実行の際にはできていないのを不便に感じたので、どうにかしたいと思い質問しています。