What if the length of the dst slice is already larger than keys?  That means we'll be passing back a slice larger than the key set.  I think we should either only populate 0-length slices OR truncate the dst slice to the appropriate size.