IDO should be able to do a similar job, and comes bundled with Emacs. We could use whichever is available at runtime. @bbatsov has [some thoughts on how this could be done](https://github.com/bbatsov/prelude/pull/464#issuecomment-31339255).