Title Keywords in Context This challenge is based on a problem described in D. Parnas, On the criteria to be used in decomposing systems into modules, and elaborated upon in J. Morris, Real Programming in Functional Languages.

Write a program or function which takes a list of book titles from stdin or as an argument, in a reasonable, convenient format for your language. For example,

Green Sleeves
Time Was Lost


or

("Green Sleeves";"Time Was Lost")


Return or print to stdout an alphabetized list of the keywords, showing their context within the original titles by enclosing each keyword in angle braces (&lt; and &gt;). As with input, output can be in a reasonable format which is convenient for your language- newline-separated lines, a list of strings, etc:

&lt;Green&gt; Sleeves
Time Was &lt;Lost&gt;
Green &lt;Sleeves&gt;
&lt;Time&gt; Was Lost
Time &lt;Was&gt; Lost


Titles will consist of a series of keywords separated by a single space. Keywords will contain only alphabetic characters. Keywords are to be sorted lexicographically. Titles will be unique, and keywords will be unique within each title but the same keyword may exist in several titles. If a keyword exists in more than one title, the output should list each appearance in an arbitrary order. For example, given this input:

A Dugong
A Proboscis


A valid output would be either:

&lt;A&gt; Proboscis
&lt;A&gt; Dugong
A &lt;Dugong&gt;
A &lt;Proboscis&gt;


Or:

&lt;A&gt; Dugong
&lt;A&gt; Proboscis
A &lt;Dugong&gt;
A &lt;Proboscis&gt;


This is code-golf- the winner is the shortest solution in bytes. Standard loopholes are disallowed.
Pyth, 25 24 22 bytes
VSsm,Rdcd\ QAN:HGjG&quot;&lt;&gt;

Try it online.
Takes input as an array of lines, like [&quot;Green Sleeves&quot;,&quot;Time Was Lost&quot;].
Explanation
VSsm,Rdcd\ QAN:HGjG&quot;&lt;&gt;   implicit: Q = evaluated input

   m       Q                   map input lines:
       cd\                         split input line to words
    ,Rd                          replace each word by pair [word, entire line]
  s                          concatenate results for all input lines
 S                         sort the array of pairs lexicographically
V                        loop over the array
            AN             assign the word to G and the corresponding line to H
                 jG&quot;&lt;&gt;       put the word between &lt;&gt;
              :HG          replace the word by the above in the line and print