English spelling is a morass of rules, semi-rules, and exceptions. One semi-rule is that a vowel before a single consonant is long, whereas before a double consonant it is short -- contrast snipe with snipped, rile with rill, abate with batten, and so on. But when a word has three or more syllables that rule seems to go out the window. So for instance the last two syllables of "shipper" and "worshiper" are pronounced exactly the same. Why don't we spell the latter "worshipper"? Personally I do, but "worshiper" is acceptable and seemingly preferred -- see also marvelous vs. marvellous, traveled vs. travelled, etc. Yet "prefered" is wrong and "preferred" is right. Those who learn English as a second language must find such phenomena endlessly frustrating...