add break_on_hyphens parameter to wordwrap filter
diff --git a/CHANGES.rst b/CHANGES.rst
index 22c1567..f05603f 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -65,6 +65,8 @@
 -   ``|wordwrap`` filter treats existing newlines as separate paragraphs
     to be wrapped individually, rather than creating short intermediate
     lines. :issue:`175`
+-   Add ``break_on_hyphens`` parameter to ``|wordwrap`` filter.
+    :issue:`550`
 
 
 Version 2.10.3
diff --git a/jinja2/filters.py b/jinja2/filters.py
index 7c54649..666df40 100644
--- a/jinja2/filters.py
+++ b/jinja2/filters.py
@@ -684,7 +684,14 @@
 
 
 @environmentfilter
-def do_wordwrap(environment, s, width=79, break_long_words=True, wrapstring=None):
+def do_wordwrap(
+    environment,
+    s,
+    width=79,
+    break_long_words=True,
+    wrapstring=None,
+    break_on_hyphens=True,
+):
     """Wrap a string to the given width. Existing newlines are treated
     as paragraphs to be wrapped separately.
 
@@ -692,15 +699,21 @@
     :param width: Maximum length of wrapped lines.
     :param break_long_words: If a word is longer than ``width``, break
         it across lines.
+    :param break_on_hyphens: If a word contains hyphens, it may be split
+        across lines.
     :param wrapstring: String to join each wrapped line. Defaults to
         :attr:`Environment.newline_sequence`.
 
     .. versionchanged:: 2.11
         Existing newlines are treated as paragraphs wrapped separately.
 
+    .. versionchanged:: 2.11
+        Added the ``break_on_hyphens`` parameter.
+
     .. versionchanged:: 2.7
         Added the ``wrapstring`` parameter.
     """
+
     import textwrap
 
     if not wrapstring:
@@ -719,6 +732,7 @@
                     expand_tabs=False,
                     replace_whitespace=False,
                     break_long_words=break_long_words,
+                    break_on_hyphens=break_on_hyphens,
                 )
             )
             for line in s.splitlines()