decoder: support :keys with :as