Is there a way to customize the behavior of `buffer-menu` such that it mimics the `list-buffers` command? 

What I'm really after is making `buffer-menu` open in a new Emacs window, and after selecting the desired buffer, the `buffer-menu` window closes, and the previous window switches to the selected buffer.

I've looked at various solutions, such as `ibuffer`, and I've tried writing Elisp to do it, but I'm having trouble getting the user selection from the menu buffer. Is there a way to get that value? Or, is there a way to wait until the user has made a selection in `menu-buffer`, either via the keyboard or a mouse click?