# create a hash from an array with keys and an array with values
# you can set default or provide a block just as with Hash::new
def Hash.zip(keys, values, default=nil, &block)
	hash = block_given? ? Hash.new(&block) : Hash.new(default)
	keys.zip(values) { |k,v| hash[k]=v }
	hash
end