Given two words and a list as input, your program must (in as few characters as possible, of course) find the shortest way to "chain" the first word to the last using the ones in the list. Two words are "chained" if their first and last letters are the same, e.g. "Food" and "Door".
Examples:

`Input: joke, corn | tan, disc, need, eat`  
`Output: joke, eat, tan, need, disc, corn`

Note that delimiters between list items (in both input and output) are completely up to you; I'm using commas and pipes for clarity.

`Input: best, fry | easy, elf, mean, tame, yam, nice`  
`Output: best, tame, elf, fry`  
NOT: `test, tame, easy, yam, mean, nice, elf, fry`

`Input: rug, gunned | orange, purple, gains, pore, soup, emo, ending`  
`Output: rug, gunned`

`Input: mouth, rich | frame, inspire, item, sold`  
Output when the first and last word are impossible to chain is undefined, so handle it however's shortest.