diff --git a/CHANGELOG.md b/CHANGELOG.md
index 205430e..2249674 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ## [Unreleased]
 
+### Added
+- It is now possible to retrieve "Unreleased" information thanks to the `show_unreleased` parameter.
+
 ## [0.1.0] - 2020-02-17
 ### Added
 - `keepachangelog.starlette.add_changelog_endpoint` function to add a changelog endpoint to a [Starlette](https://www.starlette.io) application.
diff --git a/README.md b/README.md
index a74cab6..ba23a57 100644
--- a/README.md
+++ b/README.md
@@ -112,6 +112,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 [1.0.0]: https://github.test_url/test_project/releases/tag/v1.0.0
 ```
 
+`show_unreleased` parameter can be specified in order to include `Unreleased` section information.
+Note that `release_date` will be set to None in such as case.
+
 ## Endpoint
 
 ### Starlette
diff --git a/keepachangelog/_changelog.py b/keepachangelog/_changelog.py
index ae8adce..1c3bce4 100644
--- a/keepachangelog/_changelog.py
+++ b/keepachangelog/_changelog.py
@@ -2,11 +2,14 @@ import re
 from typing import Dict, List
 
 # Release pattern should match lines like: "## [0.0.1] - 2020-12-31"
-release_pattern = re.compile(r"^## \[(.*)\] - (.*)$")
+release_pattern = re.compile(r"^## \[(.*)\](?: - (.*))?$")
 
 
-def is_release(line: str) -> bool:
-    return release_pattern.fullmatch(line) is not None
+def is_release(line: str, show_unreleased: bool) -> bool:
+    match = release_pattern.fullmatch(line)
+    if match and (not show_unreleased and match.group(1) == 'Unreleased'):
+        return False
+    return match is not None
 
 
 def add_release(changes: Dict[str, dict], line: str) -> dict:
@@ -47,7 +50,7 @@ def add_information(category: List[str], line: str):
     category.append(line)
 
 
-def to_dict(changelog_path: str) -> Dict[str, dict]:
+def to_dict(changelog_path: str, *, show_unreleased: bool = False) -> Dict[str, dict]:
     changes = {}
     with open(changelog_path) as change_log:
         release = {}
@@ -55,7 +58,7 @@ def to_dict(changelog_path: str) -> Dict[str, dict]:
         for line in change_log:
             line = line.strip(" \n")
 
-            if is_release(line):
+            if is_release(line, show_unreleased):
                 release = add_release(changes, line)
             elif is_category(line):
                 category = add_category(release, line)

Allow to retrieve unreleased information
As an option deactivated by default
diff --git a/tests/test_changelog_unreleased.py b/tests/test_changelog_unreleased.py
new file mode 100644
index 0000000..61104ae
--- /dev/null
+++ b/tests/test_changelog_unreleased.py
@@ -0,0 +1,119 @@
+import os
+import os.path
+
+import pytest
+
+import keepachangelog
+
+
+@pytest.fixture
+def changelog(tmpdir):
+    changelog_file_path = os.path.join(tmpdir, "CHANGELOG.md")
+    with open(changelog_file_path, "wt") as file:
+        file.write(
+            """# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [Unreleased]
+### Changed
+- Release note 1.
+- Release note 2.
+
+### Added
+- Enhancement 1
+- sub enhancement 1
+- sub enhancement 2
+- Enhancement 2
+
+### Fixed
+- Bug fix 1
+- sub bug 1
+- sub bug 2
+- Bug fix 2
+
+### Security
+- Known issue 1
+- Known issue 2
+
+### Deprecated
+- Deprecated feature 1
+- Future removal 2
+
+### Removed
+- Deprecated feature 2
+- Future removal 1
+
+## [1.1.0] - 2018-05-31
+### Changed
+- Enhancement 1 (1.1.0)
+- sub enhancement 1
+- sub enhancement 2
+- Enhancement 2 (1.1.0)
+
+## [1.0.1] - 2018-05-31
+### Fixed
+- Bug fix 1 (1.0.1)
+- sub bug 1
+- sub bug 2
+- Bug fix 2 (1.0.1)
+
+## [1.0.0] - 2017-04-10
+### Deprecated
+- Known issue 1 (1.0.0)
+- Known issue 2 (1.0.0)
+
+[Unreleased]: https://github.test_url/test_project/compare/v1.1.0...HEAD
+[1.1.0]: https://github.test_url/test_project/compare/v1.0.1...v1.1.0
+[1.0.1]: https://github.test_url/test_project/compare/v1.0.0...v1.0.1
+[1.0.0]: https://github.test_url/test_project/releases/tag/v1.0.0
+"""
+        )
+    return changelog_file_path
+
+
+def test_changelog_with_versions_and_all_categories(changelog):
+    assert keepachangelog.to_dict(changelog, show_unreleased=True) == {
+        'Unreleased': {
+            'version': 'Unreleased',
+            'release_date': None,
+            'changed': ['- Release note 1.', '- Release note 2.'],
+            'added': [
+                '- Enhancement 1',
+                '- sub enhancement 1',
+                '- sub enhancement 2',
+                '- Enhancement 2',
+            ],
+            'fixed': ['- Bug fix 1', '- sub bug 1', '- sub bug 2', '- Bug fix 2'],
+            'security': ['- Known issue 1', '- Known issue 2'],
+            'deprecated': ['- Deprecated feature 1', '- Future removal 2'],
+            'removed': ['- Deprecated feature 2', '- Future removal 1'],
+        },
+        '1.1.0': {
+            'version': '1.1.0',
+            'release_date': '2018-05-31',
+            'changed': [
+                '- Enhancement 1 (1.1.0)',
+                '- sub enhancement 1',
+                '- sub enhancement 2',
+                '- Enhancement 2 (1.1.0)',
+            ],
+        },
+        '1.0.1': {
+            'version': '1.0.1',
+            'release_date': '2018-05-31',
+            'fixed': [
+                '- Bug fix 1 (1.0.1)',
+                '- sub bug 1',
+                '- sub bug 2',
+                '- Bug fix 2 (1.0.1)',
+            ],
+        },
+        '1.0.0': {
+            'version': '1.0.0',
+            'release_date': '2017-04-10',
+            'deprecated': ['- Known issue 1 (1.0.0)', '- Known issue 2 (1.0.0)'],
+        },
+    }

pip install -e .[testing]
parse_log_pytest
requirements.txt
pytest pytest-cov
3.8
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi==2025.1.31
charset-normalizer==3.4.1
coverage==7.6.1
exceptiongroup==1.2.2
idna==3.10
iniconfig==2.1.0
-e git+https://github.com/Colin-b/keepachangelog.git@f8083cb3eb643aecec9ae6d9e0e53437baad56cf#egg=keepachangelog
packaging==24.2
pluggy==1.5.0
pytest==8.3.5
pytest-cov==2.12.1
requests==2.32.3
starlette==0.13.8
toml==0.10.2
tomli==2.2.1
urllib3==2.2.3

name: keepachangelog
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=24.2=py38h06a4308_0
  - python=3.8.20=he870216_0
  - readline=8.2=h5eee18b_0
  - setuptools=75.1.0=py38h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.44.0=py38h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - coverage==7.6.1
      - exceptiongroup==1.2.2
      - idna==3.10
      - iniconfig==2.1.0
      - packaging==24.2
      - pluggy==1.5.0
      - pytest==8.3.5
      - pytest-cov==2.12.1
      - requests==2.32.3
      - starlette==0.13.8
      - toml==0.10.2
      - tomli==2.2.1
      - urllib3==2.2.3
prefix: /opt/conda/envs/keepachangelog

tests/test_changelog_unreleased.py::test_changelog_with_versions_and_all_categories
keepachangelog/_changelog.py README.md CHANGELOG.md
keepachangelog/_changelog.py README.md CHANGELOG.md