You might be able to work around it, by using a zero-width look-behind like \@<=. Possibly \zs will work as well.
I'm not sure if either will work, however. If two matches begin at the same place, keyword always takes precedence and there's no way around it beyond removing the keyword or making it contained. I'd expect \@<= to be more likely to work than \zs but may make the highlight much slower.