Ensure that keywords take precedence over strings

When there is a keyword and a string in the same map, the keyword is supposed to take precedence. However, if the value matching the keyword is nil, then the use of `or` skips over the keyword's value. Using `contains-named?` fixes this.