   if method_args.include?(:options)
     options = ARGV.reduce(Hash.new) do |buffer, argument|
       if argument.match(/^--(.+)=(.+)$/)
-        ARGV.delete(argument)
         buffer[$1.to_sym] = $2
       elsif argument.match(/^--no-(.+)$/)
-        ARGV.delete(argument)
         buffer[$1.to_sym] = false
       elsif argument.match(/^--(.+)$/)
-        ARGV.delete(argument)
         buffer[$1.to_sym] = true
       end
 
       buffer
     end
+
+    ARGV.delete_if { |argument| argument.start_with?('--') }
   end
 
   arguments = []

start_snapshot user_token access_token snapshot_id [options]
  --cpu=value
  --ram=value
  --temporary=value
  --name=value
  --autopause=value
  --startup_script=value

  arguments << access_token if method_args.include?(:access_token)
  arguments.push(*ARGV)

  api_call(command, arguments, options)
end

__END__
