added support for floating point keys via new 'epsilon' param