Have you ever hit alt + backspace while in a zsh session, intending to delete just the last part of a path, or a word, or an identifier, but ended up deleting far more than that? This is probably because you are using the default value for $WORDCHARS. The default value for $WORDCHARS is *?_-.[]~=/&;!#$%^(){}<> i.e. pretty much everything and the kitchen sink. Usually, therefore, you will want to remove characters which you don’t want to be considered parts of words