Given a string `text`, return an object where keys are words and values are how many times each word appears. Words are case-insensitive and separated by spaces. Ignore punctuation (`.`, `,`, `!`, `?`).
Input: text = "hello world hello"
Output: { hello: 2, world: 1 }
Input: text = "The cat sat on the mat"
Output: { the: 2, cat: 1, sat: 1, on: 1, mat: 1 }