Given a list of lowercase words, a word chain is defined such that each word in the chain (after the first) is formed by inserting exactly one character anywhere into the previous word without reordering the existing characters. For example, "abc" -> "abxc" is a valid step, but "abc" -> "acb" is not. Return the length of the longest possible word chain that can be formed from the given list. Each word in the chain must appear in the provided list. Words may be reused as different nodes in different chains but a single chain cannot reuse the same list element twice (i.e., treat list elements as distinct by value).
['a', 'b', 'ba', 'bca', 'bda', 'bdca']4