do not modify the hash passed in append_button

The hash passed in `append_button` is modified. This is problematic when you want to reuse the options.