In cases where `split.length == 0` or `key` or `value` are not defined, we return `pair`. I'm not sure but it seems like we would be failing silently in such cases. What about returning an empty string?